package com.fy.market.activity.repository;

import com.fy.market.activity.model.entity.UserRaffleOrderEntity;

import java.util.List;

/**
 * 用户抽奖订单表 仓储接口
 * @author fwq
 * @date 2025-10-11
 */
public interface IUserRaffleOrderRepository {

    /**
     * 根据订单ID查询订单
     * @param orderId 订单ID
     * @return 订单实体
     */
    UserRaffleOrderEntity queryUserRaffleOrderByOrderId(String orderId);

    /**
     * 根据用户ID和活动ID查询订单列表
     * @param userId 用户ID
     * @param activityId 活动ID
     * @return 订单列表
     */
    List<UserRaffleOrderEntity> queryUserRaffleOrderByUserIdAndActivityId(Integer userId, Integer activityId);

    /**
     * 根据用户ID查询订单列表
     * @param userId 用户ID
     * @return 订单列表
     */
    List<UserRaffleOrderEntity> queryUserRaffleOrderByUserId(Integer userId);

    /**
     * 创建用户抽奖订单
     * @param userRaffleOrderEntity 订单实体
     */
    void createUserRaffleOrder(UserRaffleOrderEntity userRaffleOrderEntity);

    /**
     * 更新订单状态
     * @param orderId 订单ID
     * @param orderStatus 订单状态
     */
    void updateOrderStatus(String orderId, Integer orderStatus);

    /**
     * 根据订单ID更新订单
     * @param userRaffleOrderEntity 订单实体
     */
    void updateUserRaffleOrder(UserRaffleOrderEntity userRaffleOrderEntity);

    /**
     * 检查订单是否存在
     * @param orderId 订单ID
     * @return 是否存在
     */
    boolean isOrderExists(String orderId);
}
